using SheLife.Domain.Entities;

namespace SheLife.Domain.Interfaces.Repositories
{
    public interface IMenstrualCycleRepository : IRepository<MenstrualCycle>
    {
        Task<MenstrualCycle> GetByUserIdAndDateAsync(Guid userId, DateTime date);
        Task<IEnumerable<MenstrualCycle>> GetByUserIdAndDateRangeAsync(Guid userId, DateTime startDate, DateTime endDate);
        Task<MenstrualCycle> GetLatestByUserIdAsync(Guid userId);
        Task<IEnumerable<MenstrualCycle>> GetByCycleTypeAsync(Guid userId, string cycleType);
    }

    public interface IBasalBodyTemperatureRepository : IRepository<BasalBodyTemperature>
    {
        Task<IEnumerable<BasalBodyTemperature>> GetByUserIdAndDateRangeAsync(Guid userId, DateTime startDate, DateTime endDate);
        Task<BasalBodyTemperature> GetLatestByUserIdAsync(Guid userId);
    }
}